from dataclasses import dataclass, field


@dataclass
class Student:
    name: str
    age: int
    independent: bool = field(
        default=False,  # 给定默认值
        init=False,   # 不通过__init__方法定义属性
        repr=True,  # 打印的时候是否打印该属性
        compare=True  # 两个对象比较时，该属性是否参与比较
    )

    # 复杂业务逻辑，可以用__post_init__方法给定制属性或其他属性进行赋值操作
    def __post_init__(self):
        self.independent = self.age >= 18


s_1 = Student("jack", 18)
print(s_1)
